#ifndef __C_GLOBALS_H__
#define __C_GLOBALS_H__

#include "cmanifs.h"

extern int filecount,l,c,peekc,errcount,in_index,true,false;
extern char wordval,cconst,linebuf[200],buffer[500];
extern FILE *lexin,*outfile,*savelex;

extern STRING s,t;
#define MAXFUNCS        104
#define copy(x,y) x = y

extern FITEM ftable[MAXFUNCS];

extern F_STACKPTR f_stack;
extern P_STACKPTR p_stack;
extern E_STACKPTR parm_stack;
extern E_LISTPTR parm_list;

extern YYSTYPE yylval;
extern int lexlevel;
extern int funclevel;
extern int elemlevel;
extern int identcount;
extern int formalcount;
extern int idusage; /* is ident being declared, used, or what? */
#define HASHSIZE        120
extern SYMPTR hashtable[HASHSIZE+1];

extern FILE *lexin, *outfile;

struct IN_FILES{
	FILE *in_fdes;
	STRING in_name;
	int in_line;
};

extern struct IN_FILES in_files[12];

#define MAXSTRINGS        200
extern STRING stringtable[MAXSTRINGS];
extern STRING wordtable[MAXSTRINGS];
extern int stringcount,wordcount;
#define MAXVARS         400
#define MAXFILES       1000
extern EXPRPTR exprtable[MAXVARS]; /* the expressions trees for each variable */
extern STRING  nametable[MAXVARS]; /* the user names for each variable */
extern EXPRPTR filetable[MAXFILES];

STRING strsave(char *s);
#endif